//package websocket.controller;
//
//import io.netty.bootstrap.Bootstrap;
//import io.netty.buffer.ByteBuf;
//import io.netty.buffer.Unpooled;
//import io.netty.channel.*;
//import io.netty.channel.group.ChannelGroup;
//import io.netty.channel.group.DefaultChannelGroup;
//import io.netty.channel.nio.NioEventLoopGroup;
//import io.netty.channel.socket.SocketChannel;
//import io.netty.channel.socket.nio.NioSocketChannel;
//import io.netty.handler.codec.string.StringDecoder;
//import io.netty.handler.codec.string.StringEncoder;
//import io.netty.util.concurrent.GlobalEventExecutor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.web.bind.annotation.*;
//import websocket.dto.ResultDTO;
//import websocket.netty.ChannelMap;
//
//import java.nio.charset.Charset;
//
///**
// * 模拟消息发送控制器
// */
//
//@RestController
//@RequestMapping("send")
//@Slf4j
//public class SendMsgController {
//
//
//    @GetMapping("/msg")
//    public ResultDTO connectSerialPort(@RequestParam("port") Integer port,String msg) {
//
////        ByteBuf buf = Unpooled.copiedBuffer(msg, Charset.forName("UTF-8"));
////        ByteBuf buf = Unpooled.copiedBuffer(msg, Charset.forName("UTF-8"));
//        ByteBuf buf = Unpooled.copiedBuffer(msg.getBytes());
//
//        EventLoopGroup workerGroup = new NioEventLoopGroup();
//
//        try {
//            Bootstrap b = new Bootstrap(); // (1)
//            b.group(workerGroup); // (2)
//            b.channel(NioSocketChannel.class); // (3)
//            b.option(ChannelOption.SO_KEEPALIVE, true); // (4)
//            b.handler(new ChannelInitializer<SocketChannel>() {
//                @Override
//                public void initChannel(SocketChannel ch) throws Exception {
//                    ch.pipeline().addLast(new StringDecoder(Charset.forName("UTF-8")));
//                    ch.pipeline().addLast(new StringEncoder(Charset.forName("UTF-8")));
//                }
//            });
//
//            // 启动客户端
//            ChannelFuture f = b.connect("127.0.0.1", port).sync(); // (5)
//
//            // 发送数据
////            String msg = "Hello, Server!";
////            ByteBuf buf = Unpooled.copiedBuffer(msg.getBytes());
//            ChannelHandlerContext ctx = f.channel().pipeline().firstContext();
//            ctx.writeAndFlush(buf);
//
//            // 等待连接关闭
//            f.channel().closeFuture().sync(); // (6)
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        } finally {
//            workerGroup.shutdownGracefully();
//        }
//
//        return ResultDTO.success("发送成功");
//    }
//
//
//    public void sendMsgManyNew(ByteBuf msg) throws Exception {
//        ChannelGroup channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
//        Channel channel1 = ChannelMap.getChannePortdMap().get(8091);
//        if (channel1 == null) {
//            log.info("通道:{},不存在", 8091);
//        } else {
//            channels.add(channel1);
//        }
//
//        Channel channel2 = ChannelMap.getChannePortdMap().get(8093);
//        if (channel2 == null) {
//            log.info("通道:{},不存在", 8093);
//        } else {
//            channels.add(channel2);
//        }
//
//        if (msg == null) {
//            log.info("服务端响应空的消息");
//            return;
//        }
//        //向ChannelGroup中的所有客户端发送消息
//        channels.writeAndFlush(msg);
//    }
//}
